
<template>
  <component
    ref="compModel"
    :is="comp"
    :formData="formData"
    v-if="comp"
    @ok="callBackOk"
    @close="callBackClose"></component>
</template>
<script>
  export default {
    name: 'DynamicComponent',
    data () {
      return {
        compName: this.path
      }
    },
    computed: {
      comp: function () {
        return () => import(`@/views/${this.compName}.vue`)
      }
    },
    props: ['path', 'formData'],
    methods: {
      add () {
        this.$refs.compModel.add();
      },
      callBackClose () {
        this.$emit('close');
      },
      handleOk () {
        this.$refs.compModel.handleOk();
      },
      callBackOk() {
        this.$emit('ok');
        this.close();
      }
    }
  }
</script>
